package com.wms.controller;

import com.wms.entity.WMSFile;
import com.wms.service.UploadService;
import com.wms.util.AliyunOSSUtil;
import com.wms.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * ---Do First---
 *
 * @author:wellseasun
 * @date:2025/4/29 上午 11:39
 * @desc:
 */
@RestController
public class UploadController {
    @Autowired
    private UploadService uploadService;
    /**
     * 文件上传接口
     * @param file
     * @return
     */
    @PostMapping("/upload")
    public R upload(MultipartFile file){
        //第一步：利用这个接口上传文件到阿里云服务器，以便公共浏览
        String filePath = AliyunOSSUtil.upLoad(file);
        //第二步：想办法存储到数据库
        uploadService.upload(filePath);
        //【重点注意这里的第二步！】这里以及后续的service和mapper仅作示例，相关的图片需要结合自己的实际字段添加
        //如：我在这里传了一个图片，实际存到的是数据库中的wms_file数据表，不是你的表中的属性字段
        //你应该如此做：在自己的controller中执行第一步，并根据实际情况调用自己的service中的插入方法
        // 在最后的mapper.xml中的插入语句中，新家一个图片属性字段的插入
        return R.ok(filePath);
    }
    /**
     * （示例）查全部文件图片
     *
     */
    @GetMapping("/list")
    public R list(){
        List<WMSFile> list =  uploadService.list();
        return R.ok(list);
    }

    /**
     * 上传图片返回图片地址
     */
    @PostMapping("/upload/image")
    public R uploadImage(MultipartFile file) {
        String filePath = AliyunOSSUtil.upLoad(file);
        return R.ok(filePath);
    }
}
